Anti-Forgery Tokens হলো একটি নিরাপত্তা পদ্ধতি, যা Cross-Site Request Forgery (CSRF) আক্রমণ থেকে অ্যাপ্লিকেশনকে রক্ষা করতে সাহায্য করে। CSRF আক্রমণে আক্রমণকারী একটি ব্যবহারকারীর ব্রাউজারে অবৈধভাবে একটি রিকোয়েস্ট পাঠাতে পারে, যা অনিচ্ছাকৃতভাবে একটি অ্যাপ্লিকেশনের পক্ষ থেকে এক্সিকিউট হয়। Anti-Forgery Tokens এই ধরনের আক্রমণ প্রতিরোধ করতে সাহায্য করে, কারণ এটি প্রতিটি রিকোয়েস্টের সাথে একটি অনন্য টোকেন চেক করে নিশ্চিত করে যে রিকোয়েস্টটি বৈধ উৎস থেকে এসেছে।
ASP.Net MVC অ্যাপ্লিকেশনে Anti-Forgery Tokens সহজেই ব্যবহার করা যায় এবং এটি ফর্ম সাবমিশন, AJAX রিকোয়েস্ট ইত্যাদির ক্ষেত্রে CSRF আক্রমণ প্রতিরোধ করতে কার্যকর।
Anti-Forgery Token দুটি মূল উপাদান নিয়ে কাজ করে:
ASP.Net MVC অ্যাপ্লিকেশনে Anti-Forgery Token ব্যবহার করার জন্য, আপনি দুটি ধাপে এটি কার্যকর করতে পারেন:
@Html.AntiForgeryToken()
ব্যবহার করতে হবে।প্রথমে, আপনার ফর্মে Anti-Forgery Token তৈরি করতে হবে। এটি করতে, ফর্মের মধ্যে @Html.AntiForgeryToken()
ব্যবহার করতে হবে, যেমন:
@using (Html.BeginForm("Submit", "Home", FormMethod.Post))
{
@Html.AntiForgeryToken() <!-- Anti-Forgery Token -->
<label for="name">Name:</label>
<input type="text" id="name" name="name" />
<input type="submit" value="Submit" />
}
এখানে, @Html.AntiForgeryToken()
একটি সিক্রেট টোকেন তৈরি করবে এবং এটি ফর্মের মধ্যে সংযুক্ত করবে। যখন ব্যবহারকারী এই ফর্মটি সাবমিট করবে, তখন এটি এই টোকেনটিকে সার্ভারে পাঠাবে।
এখন, কন্ট্রোলার অ্যাকশন মেথডে টোকেনটি যাচাই করতে হবে। এটি করতে, কন্ট্রোলারের অ্যাকশনে [ValidateAntiForgeryToken] অ্যাট্রিবিউট ব্যবহার করতে হবে।
[HttpPost]
[ValidateAntiForgeryToken] // Validate Anti-Forgery Token
public ActionResult Submit(string name)
{
// টোকেনটি যদি বৈধ হয়, তাহলে এই কোডটি চলবে
ViewBag.Message = $"Hello, {name}!";
return View();
}
এখানে, Submit
অ্যাকশন মেথডে [ValidateAntiForgeryToken] অ্যাট্রিবিউট ব্যবহার করা হয়েছে, যা টোকেনটি সার্ভারে পাঠানো টোকেনের সাথে তুলনা করবে। যদি টোকেনটি সঠিক না হয়, তাহলে একটি HttpAntiForgeryException
ত্রুটি ঘটবে এবং রিকোয়েস্টটি বাতিল হয়ে যাবে।
ASP.Net MVC অ্যাপ্লিকেশনগুলিতে AJAX রিকোয়েস্টে Anti-Forgery Token পাঠানো কিছুটা ভিন্ন। আপনাকে টোকেনটি AJAX রিকোয়েস্টের হেডারে যোগ করতে হবে। এটি করতে, আপনার AJAX রিকোয়েস্টের হেডারে Anti-Forgery Token যুক্ত করতে পারেন:
<script>
$(document).ready(function () {
// AJAX রিকোয়েস্টের হেডারে Anti-Forgery Token যুক্ত করা
var token = $('input[name="__RequestVerificationToken"]').val();
$.ajax({
url: '@Url.Action("Submit", "Home")',
type: 'POST',
data: { name: 'John Doe' },
headers: {
'RequestVerificationToken': token
},
success: function (response) {
alert(response);
}
});
});
</script>
এখানে, __RequestVerificationToken
ইনপুট ফিল্ডের মান নেওয়া হচ্ছে এবং এটি AJAX রিকোয়েস্টের হেডারে পাঠানো হচ্ছে।
এটি AJAX রিকোয়েস্টের জন্য Anti-Forgery Token ব্যবহার করতে সহায়ক।
ASP.Net MVC অ্যাপ্লিকেশনে Anti-Forgery Tokens ব্যবহার করা একটি গুরুত্বপূর্ণ নিরাপত্তা ব্যবস্থা, যা Cross-Site Request Forgery (CSRF) আক্রমণ প্রতিরোধ করতে সহায়ক। @Html.AntiForgeryToken() এবং [ValidateAntiForgeryToken] ব্যবহার করে ফর্ম সাবমিশন এবং AJAX রিকোয়েস্টে টোকেন যাচাই করা যায়। এটি অ্যাপ্লিকেশনকে নিরাপদ রাখতে এবং ব্যবহারকারীদের ডেটার সুরক্ষা নিশ্চিত করতে সহায়ক।
common.read_more